#include <iostream>
#include <unistd.h>
#include <ctime>

// int gval = 100;

// void fun()
// {
// }

// // 新线程
// // 0x1111~0x2222
// void *threadStart(void *args)
// {
//     while (true)
//     {
//         sleep(1);

//         // int x = rand() % 5;

//         std::cout << "new thread running..." << ", pid: " << getpid()
//                   << ", gval: " << gval << ", &gval: " << &gval << std::endl;
//         fun();
//         // if(x == 0)
//         // {
//         //     int *p = nullptr;
//         //     *p = 100; // 野指针
//         // }
//     }
// }
// // 0x3333~0x4444
// int main()
// {
//     srand(time(nullptr));

//     pthread_t tid1;
//     pthread_create(&tid1, nullptr, threadStart, (void *)"thread-new");

//     pthread_t tid2;
//     pthread_create(&tid2, nullptr, threadStart, (void *)"thread-new");

//     pthread_t tid3;
//     pthread_create(&tid3, nullptr, threadStart, (void *)"thread-new");
//     // 主线程
//     while (true)
//     {
//         std::cout << "main thread running..." << ", pid: " << getpid()
//                   << ", gval: " << gval << ", &gval: " << &gval << std::endl;

//         gval++; // 修改！
//         sleep(1);
//     }
//     return 0;
// }